package com.advert.boot.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.advert.boot.system.model.entity.AdvertProduct;
import com.advert.boot.system.model.form.ProductForm;
import com.advert.boot.system.model.query.ProductPageQuery;
import com.advert.boot.system.model.vo.OrderInfoVO;
import com.advert.boot.system.model.vo.ProductDetailsVO;
import com.advert.boot.system.model.vo.ProductVO;
import com.advert.boot.system.model.vo.StatisticsVO;

public interface AdvertProductService extends IService<AdvertProduct> {
    /**
     * 分页查询产品信息
     *
     * @param pageQuery 查询参数
     * @param type      type= 1首页查询，返回附件信息；2产品信息查询
     * @return 产品信息分页列表
     */
    Page<ProductVO> page(ProductPageQuery pageQuery, int type);

    /**
     * 分页查询订单信息
     *
     * @return 订单信息
     */
    Page<OrderInfoVO> orderPage();

    /**
     * 根据id查询详情
     *
     * @param id 产品信息ID
     * @return 产品信息
     */
    ProductDetailsVO selectProductById(Long id);

    /**
     * 统计信息
     *
     * @return 统计信息
     */
    StatisticsVO statistics();

    /**
     * 保存产品信息
     *
     * @param productForm 产品信息
     * @return 是否保存成功
     */
    boolean save(ProductForm productForm);

    /**
     * 编辑产品信息
     *
     * @param id          产品信息ID
     * @param productForm 产品信息
     * @return 是否编辑成功
     */
    boolean edit(Long id, ProductForm productForm);

    /**
     * 删除产品信息
     *
     * @param ids 产品信息ID
     * @return 是否删除成功
     */
    boolean delete(Long ids);
}
